Cloud computing in general may be portrayed as a synonym for distributed computing over a network, with the ability to run a program or application on many connected computers at the same time. It specifically refers to a Computing hardware machine or group of computing hardware machines commonly referred as a server connected through a communication network such as internet, intranet, local area network (LAN) or Wide area network (WAN) and Individual user or users who have permission to access the server can use the server's processing power for their individual computing needs like to run an application, store data or any other computing need alike. Therefore, instead of using a personal computer every-time to run the application, individual can now run the application from anywhere in the world, as the server provides the processing power to the application and the server is also connected to a network via internet or other connection platforms to be accessed from anywhere. All this has become possible due to increasing computer processing power available to humankind with decrease in cost.
In common usage, the term “the cloud” is essentially a metaphor for the Internet. Marketers have further popularized the phrase “in the cloud” to refer to software, platforms and infrastructure that are sold “as a service”, i.e. remotely through the Internet. Typically, the seller has actual energy-consuming servers which host products and services from a remote location, so end-users don't have to; they can simply log on to the network without installing anything. The major models of cloud computing service are known as software as a service, platform as a service, and infrastructure as a service. These cloud services may be offered in a public, private or hybrid network.
Network-based services, which appear to be provided by real server hardware and are in fact served up by virtual hardware simulated by software running on one or more real machines, are often called cloud computing. Such virtual servers do not physically exist and can therefore be moved around and scaled up or down on the fly without affecting the end user, somewhat like a cloud becoming larger or smaller without being a physical object.
The term “cloud computing” is mostly used to sell hosted services in the sense of application service provisioning that run client server software at a remote location. End users access cloud-based applications through a web browser, thin client or mobile app while the business software and user's data are stored on servers at a remote location.
Thus, cloud computing is everywhere today, and lots of computations have been moved from terminals such as electronic devices to the cloud.
One of the problems of moving everything into the cloud is that devices become more and more dumb and if they cannot connect to the cloud for some reason (communication failure or cloud itself is down), the devises cannot do much and become unusable.
Today different solutions for managing application execution and content storage in a cloud computing environment, having local electronic devices with different capabilities are used. The prior art solutions below discloses how some of the data used in the cloud computing can be stored in local clients in order to make the processing more efficient, and/or to achieve at least some service even if the cloud is unavailable.
US2014095591 relates to a cloud computing system in which the electronic devices can preload some of the cloud files locally depending on user/device conditions. According to the document, a plurality of parameters can be used to decide when, and which files to preload, such as class of device, time of day, position, and relative position. The system described in this document can prefetch or preload content from the cloud, for example, a piece of news, video, audio, etc. All of these are around content. Content is something being presented to the end user in one way or another, but with the preloaded content, the local device is still not able to do a task that it was not designed to do.
Koukoumidis, E, et al. “Pocket Cloudlets”. March 2011, ASPLOS 2011 (International Conference on Architectural Support for Programming Languages and Operating Systems) discloses a cloud service cache architecture that resides on the mobile device's non-volatile memory, called “pocket cloudlet” in order to reduce service latency and energy consumption. One example discusses a “mini search engine” running on the phone and using preloaded data judged to be relevant, such as local data.
In this architecture the “cloudlet” is created/installed manually on the device, and the computation capability is fixed for the device. A cloudlet is designed and installed onto a local device manually, and its capabilities or functionalities are fixed.